package dletc.List;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Random;
/**
 * 一、List集合的排序方法：
 * 		1.1 排序方法：Collections.sort(Collection c);
 * 			1.自然排序：
 * 				A String，包装类底层都实现了Comparable接口，所以可以直接排序
 * 			2.自定义排序：
 * 				Comparator 接口
 *
 */
public class Demo06 {

	public static void main(String[] args) {
		// 自然排序
		ArrayList<Integer> list = new ArrayList<Integer>();
		//生成随机数 用Random类
		Random random = new Random() ;
		for(int i = 0; i < 10; i++){
			//生成1-100随机数
			list.add(random.nextInt(100) + 1);
		}
		
		System.out.println(list);
		//自然排序,从小到大
		Collections.sort(list);
		System.out.println(list);
		//取反，从大到小
		Collections.reverse(list);
		System.out.println(list);
		
		System.out.println("----------------------------");
		
		//自定义类自然排序   自定义类需要实现Comparable接口 重写sort()方法
		ArrayList<Point> list1 = new ArrayList<Point>();
		
		list1.add(new Point(3,3));
		list1.add(new Point(4,4));
		list1.add(new Point(1,1));
		list1.add(new Point(2,2));
		
		Collections.sort(list1);
		System.out.println(list1);
		
		System.out.println("-----------------------------");
		
		ArrayList<String> list2 = new ArrayList<String>();
		list2.add("杨紫");
		list2.add("迪利热巴");
		list2.add("伊丽莎白泰勒");
		list2.add("关晓彤");
		list2.add("斯坦福其列司机付");
		list2.add("关之琳");
		list2.add("郑爽");
		
		//不用String自带的比较方法 用比较器重新定义
		Collections.sort(list2,new Comparator<String>() {

			@Override
			public int compare(String o1, String o2) {
				//从大到小 o2-o1 从小到大 o1 - o2
				return o1.length() - o2.length();
			}
		});
		
		System.out.println(list2);

	}

}
